package com.hmy.material.mapper;

import com.hmy.equipment.domain.HmyEquipment;
import com.hmy.material.domain.HmyMateriaFeedConsume;
import com.hmy.park.domain.HmyPhouse;
import com.hmy.staff.domain.HmyStaff;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author zxh
 * @version 1.0
 * @description: 物料消耗表DAO数据接口
 * @date 2024/2/1 11:31
 */
public interface ConsumeMapper {

    /**
     * @param
     * @return java.util.List<java.lang.String>
     * @description 获取信息表栏舍编码
     * @author ljy
     * @date 2024/2/22 15:42:19
     */
    List<HmyEquipment> findPhouseCode();

    /**
     * 根据条件查询列表
     *
     * @param materiaFeedStorePosition
     * @param materiaFeedType
     * @param creationDateStart
     * @param creationDateEnd
     * @return
     */
    public List<HmyMateriaFeedConsume> selectConsumeList(@Param("position") Integer materiaFeedStorePosition,
                                                         @Param("type") Integer materiaFeedType,
                                                         @Param("dateStart") String creationDateStart,
                                                         @Param("dateEnd") String creationDateEnd,
                                                         @Param("phouseCode") String phouseCode);

    /**
     * 新增消耗记录
     *
     * @param consume
     * @return
     */
    public int addConsume(HmyMateriaFeedConsume consume);


    /**
     * 根据ID获取单个消耗记录
     *
     * @param materiaFeedConsumeId ID
     * @return 返回单个对象
     */
    public HmyMateriaFeedConsume selectConsumeById(@Param("id") Long materiaFeedConsumeId);


    /**
     * 修改消耗记录
     *
     * @param consume 参数对象
     * @return 受影响行数
     */
    public int updateConsume(HmyMateriaFeedConsume consume);

    /**
     * 根据ID删除
     *
     * @param materiaFeedConsumeIds
     * @return
     */
    public int delConsumeByIds(Long[] materiaFeedConsumeIds);

    /**
     * 获取栏舍表中的所有栏舍编号
     *
     * @return
     */
    public List<HmyPhouse> findAllPhouseCode();

    /**
     * 获取员工表中所有的物料管理员
     *
     * @return
     */
    public List<HmyStaff> findAllStaffName();


}
